package tests;
import junit.framework.TestCase;
import model.Posicion;
import model.Trayectoria;

import org.junit.Test;


public class TrayectoriaTest extends TestCase{

	@Test
	public void testElTrayecto1x1A5x5DebePasarPorLaPosicion2x2() {
		
		Trayectoria unaTrayectoria = new Trayectoria();
		Posicion unaPosicion = new Posicion(1,1);
		Posicion otraPosicion = new Posicion(5,5);
		
		Posicion pos1 = new Posicion(2,2);
		Posicion pos2 = new Posicion(3,3);
		Posicion pos3 = new Posicion(4,4);
		Posicion pos4 = new Posicion(6,6);
		Posicion pos5 = new Posicion(0,0);
		
		unaTrayectoria.agregarTramo(unaPosicion, otraPosicion);

		assertTrue(unaTrayectoria.tienePosicion(unaPosicion));
		assertTrue(unaTrayectoria.tienePosicion(otraPosicion));
		assertTrue(unaTrayectoria.tienePosicion(pos1));
		assertTrue(unaTrayectoria.tienePosicion(pos2));
		assertTrue(unaTrayectoria.tienePosicion(pos3));
		assertFalse(unaTrayectoria.tienePosicion(pos4));
		assertFalse(unaTrayectoria.tienePosicion(pos5));
		//assertTrue(unaTrayectoria.getTrayecto().size() == 5);
		
		
	}


	public void testElTrayecto5x5A1x1DebePasarPorLaPosicion2x2() {
		
		Trayectoria unaTrayectoria = new Trayectoria();
		Posicion unaPosicion = new Posicion(5,5);
		Posicion otraPosicion = new Posicion(1,1);
		
		Posicion pos1 = new Posicion(2,2);
		Posicion pos2 = new Posicion(3,3);
		Posicion pos3 = new Posicion(4,4);
		Posicion pos4 = new Posicion(6,6);
		Posicion pos5 = new Posicion(0,0);
		
		unaTrayectoria.agregarTramo(unaPosicion, otraPosicion);

		assertTrue(unaTrayectoria.tienePosicion(unaPosicion));
		assertTrue(unaTrayectoria.tienePosicion(otraPosicion));
		assertTrue(unaTrayectoria.tienePosicion(pos1));
		assertTrue(unaTrayectoria.tienePosicion(pos2));
		assertTrue(unaTrayectoria.tienePosicion(pos3));
		assertFalse(unaTrayectoria.tienePosicion(pos4));
		assertFalse(unaTrayectoria.tienePosicion(pos5));
		//assertTrue(unaTrayectoria.getTrayecto().size() == 5);
	}

	public void testElTrayecto1x1A20x40DebePasarPorLaPosicion10x10() {
		
		Trayectoria unaTrayectoria = new Trayectoria();
		Posicion unaPosicion = new Posicion(1,1);
		Posicion otraPosicion = new Posicion(20,40);
		
		Posicion pos1 = new Posicion(10,10);
		Posicion pos2 = new Posicion(20,39);
		Posicion pos3 = new Posicion(20,30);
		Posicion pos4 = new Posicion(19,20);
		Posicion pos5 = new Posicion(0,0);
		
		unaTrayectoria.agregarTramo(unaPosicion, otraPosicion);

		
		assertTrue(unaTrayectoria.tienePosicion(unaPosicion));
		assertTrue(unaTrayectoria.tienePosicion(otraPosicion));
		assertTrue(unaTrayectoria.tienePosicion(pos1));
		assertTrue(unaTrayectoria.tienePosicion(pos2));
		assertTrue(unaTrayectoria.tienePosicion(pos3));
		assertFalse(unaTrayectoria.tienePosicion(pos4));
		assertFalse(unaTrayectoria.tienePosicion(pos5));
		//assertTrue(unaTrayectoria.getTrayecto().size() > 5);
		
	}

}
